Systems and methods for data path control in a wireless network

ABSTRACT

In various embodiments, the data plane may be abstracted from a control plane in a wireless network such as WiMax, WiFi, LTE or the like. In some embodiments, a method comprises a receiving control data at a control server from a source device, generating routing instructions at the control server regarding routing network data based on the control data, providing the routing instructions to a routing device, configuring the routing device based on the routing instructions, receiving network data from the source device, and routing the network data from the source device to a target device using the configured routing device.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent application Ser. No. 12/474,231, filed May 28, 2009 and entitled “Systems and Methods for Data Path Control in a Wireless Network,” which claims priority to U.S. Provisional Patent Application Ser. No. 61/056,751, filed May 28, 2008 and entitled “ASNS Data Path Controller,” and which is a continuation-in-part of U.S. patent application Ser. No. 12/466,998, filed May 15, 2009 and entitled “Systems and Methods for Distributed Data Routing in a Wireless Network,” now U.S. Pat. No. 8,787,250, which claims priority to U.S. Provisional Patent Application Ser. No. 61/053,611, filed May 15, 2008 and entitled “ASN and CSN Architecture,” the disclosures of which are incorporated by reference herein.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

BACKGROUND

1. Field of the Invention

The present invention relates generally to data path control. More particularly, the invention relates to systems and methods for data path control in a wireless network.

2. Description of Related Art

WiMax (Worldwide Interoperability for Microwave Access) is a wireless broadband technology, which supports point to multi-point (PMP) broadband wireless access. WiMAX™ is based upon the IEEE 802.16 standard enabling the delivery of wireless broadband services. WiMAX products can accommodate fixed and mobile usage models. The IEEE 802.16 standard was developed to deliver non-line-of-sight (LoS) connectivity between a subscriber station and base station with typical cell radius of three to ten kilometers.

All base stations and subscriber stations claiming to be WiMAX compliant must go through a rigorous WiMAX Forum Certified™ testing process. WiMAX Forum Certified systems can be expected to deliver capacity of up to 40 Mbps per channel. This is enough bandwidth to simultaneously support hundreds of businesses with T-1 speed connectivity and thousands of residences with DSL speed connectivity. The WiMAX Forum expects mobile network deployments to provide up to 15 Mbps of capacity within a typical cell radius of up to three kilometers. WiMAX technology already has been incorporated in notebook computers and PDAs to deliver high speed mobile Internet services.

One of the advantages of WiMAX technology is the use of Orthogonal Frequency-Division Multiplexing (OFDM) over Edge, GPRS, or HSPA to deliver higher bandwidth efficiency, and, therefore, higher data throughput, with more than one Mbps downstream and higher data rates. Adaptive modulation also increases link reliability for carrier-class operation and the possibility to keep higher order modulation at wider distance extend full capacity over longer distances.

OFDM is a digital encoding and modulation technology. It has been used successfully in wire-line access applications, such as Digital Subscriber Line (DSL) modems and cable modems as well as WiFi. Products from WiMAX Forum member companies often use OFDM-based 802.16 systems to overcome the challenges of non-line-of-sight (NLoS) propagation. OFDM achieves high data rate and efficiency by using multiple overlapping carrier signals instead of just one. All future technologies for 4G will be based upon OFDM technology.

Orthogonal Frequency Division Multiple Access (OFDMA) is enhanced OFDM and is used in Mobile WiMAX technology and the IEEE 802.16e-2005 standard. It is a multi-user version of Orthogonal Frequency-Division Multiplexing (OFDM). The difference between the two technologies is that OFDMA assigns subsets of sub-carriers to individual users allowing simultaneous low data rate transmission from several users.

SUMMARY

In various embodiments, the data plane may be abstracted from a control plane in a wireless network such as WiMax, WiFi, LTE or the like. In some embodiments, a routing device comprises a control module, a service module, and a router module. The control module may be configured to receive communication instructions from a control server. The service module may be configured to process the communication instructions and provide data path instructions based on the communication instructions. The router module may be configured to receive data from a source device and route the processed data to a target device based on the data path instructions. The control server may comprise a WiMax server such as an ASN server, LTE server, or CSN server. In one example, the control server comprises the ASN server and the routing device communicates with the ASN server over an R7 interface.

In some embodiments, the communication instructions comprise instructions to tunnel the received data using one of a plurality of GRE tunnels. The communication instructions may comprise instructions to tunnel the received data using one of a plurality of IP tunnels.

A base station may comprise the routing device. In some embodiments, the communication instructions comprise instructions to tunnel the received data using one of a plurality of IP tunnels and wherein the target device comprises a CSN server. Alternately, the communication instructions may comprise instructions to process the received data using a VLAN protocol. The CSN server may comprise the routing device.

In various embodiments, a method comprises receiving communication instructions from a control server, receiving data from a source device, processing the data based on the communication instructions, and routing the processed data to a target device.

A system may comprise a means for receiving communication instructions from a control server and receiving data from a source device, means for processing the data based on the communication instructions, and a means for routing the processed data to a target device.

A computer readable medium may comprise instructions. The instructions may be executable by a processor to perform a method. The method may comprise receiving communication instructions from a control server, receiving data from a source device, processing the data based on the communication instructions, and routing the processed data to a target device.

In various embodiments, the data plane may be abstracted from a control plane in a wireless network such as WiMax, WiFi, LTE or the like. In some embodiments, a method comprises a receiving control data at a network device from a source device, generating routing instructions at a network device regarding routing network data based on the control data instructions, providing the routing instructions to a routing device, configuring the routing device based on the routing instructions, receiving network data from the source device, and routing the network data from the source device to a target device using the configured routing device.

The network device may comprise a WiMAX server or an LTE server. In some embodiments, the network device is an access server network (ASN) server and providing the routing instructions comprises providing the routing instructions from the ASN server over an R7 interface to the routing device.

In various embodiments, the routing instructions may comprise instructions to forward matching incoming traffic arriving on a specific ingress interface to a specific egress interface. The ingress interface may comprise a specific generic routing encapsulation (GRE) tunnel and the egress interface may comprise an IP to IP tunnel.

The routing instructions may comprise instructions to drop matching incoming traffic arriving on a specific ingress interface, instructions to duplicating outgoing traffic to two or more egress interfaces, and/or instructions to buffer packets at an egress interface according to hierarchical quality of service (QoS) policies.

The method may further comprise matching network data using packet classification rules to determine a routing function.

In various embodiments, a system may comprise a network device and a routing device. The network device may be configured to receive control data from a source device, generate routing instructions regarding routing network data based on the control data instructions, and provide the routing instructions to a routing device. The routing device may be configured based on the routing instructions to receive network data from the source device, and route the network data from the source device to a target device based on the routing instructions.

A computer readable medium may comprise instructions. The instructions may be executable by a processor to perform a method. The method may comprise receiving control data at a network device from a source device, generating routing instructions at a network device regarding routing network data based on the control data, providing the routing instructions to a routing device, configuring the routing device based on the routing instructions, receiving network data from the source device, and routing the network data from the source device to a target device using the configured routing device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a centralized architecture of a WiMax or 802.16e system in the prior art.

FIG. 2 is a block diagram of an exemplary access service network.

FIG. 3 is a block diagram of an exemplary routing device.

FIG. 4 is a block diagram of an exemplary ASN server.

FIG. 5 is a block diagram of an exemplary WiMax network.

FIG. 6 is a block diagram of an exemplary base station.

FIG. 7 is a block diagram of an exemplary connectivity service network.

FIG. 8 is a block diagram of an ASN server and a CSN server operationally coupled to a routing device in some embodiments.

FIG. 9 is a flow diagram of an exemplary method for decentralized distribution of data in a WiMax network.

FIG. 10 is a block diagram of an exemplary digital device.

FIG. 11 is a block diagram of an exemplary packet forwarding module.

FIG. 12 is a block diagram of an exemplary data path process.

FIG. 13 is a flow diagram of an exemplary method for data path processing.

DETAILED DESCRIPTION OF THE INVENTION

In various embodiments, the data plane may be abstracted from a control plane in a wireless network such as WiMax, WiFi, LTE or the like. Data plane (i.e., forwarding plane) functions, although controlled through communications from the control plane, may be performed on a separate device. The device performing the data plane functions may be completely ignorant of the nature of the data being routed. As a result, the data plane device may be used by different wireless network servers utilizing different architectures.

For example, in a WiMax architecture, access service network (ASN) data plane functions may be performed by a routing device rather than an access service network server (ASN server). Together, the routing device and the ASN server may comprise an ASN gateway. The routing device, however, may be agnostic of the ASN server. As a result, the ASN server may be replaced by any wireless network server (e.g., for a WiFi or LTE architecture) and continue to work with the digital device to perform data path functions. Alternately, the routing device may be replaced with another routing device that performs routing in a different manner, however, the ASN server (e.g., without reconfiguration) and the new routing device may still perform the function of the ASN gateway.

In various embodiments, the rest of the wireless network devices (apart from the ASN server and the routing device) will not need to be reconfigured or altered even though the ASN server may be performing control plane functions and the routing device may be performing data plane functions. In other words, from the perspective of base stations (BSs), other ASNs, or a connectivity service network (CSN), the ASN server paired with the routing device may appear and perform as a typical ASN gateway.

In some embodiments, a decentralized data path as described herein is simpler in implementation than an integrated data path (e.g., the integrated data path products tend to be complex products which leads to costly systems that may be buggy). For example, traditional ASN and/or CSN servers tend to perform both control plane and data plane functions. However, in some embodiments, the routing device comprising an off-the-shelf router (e.g., Juniper MX or M series router) may perform the data plane functions thereby simplifying the function of the ASN server. By simplifying the function of the ASN and/or CSN server, the ASN and/or CSN server may be less expensive and more reliable.

FIG. 1 illustrates an example of a centralized architecture of a WiMax or 802.16e system in the prior art. FIG. 1 illustrates a WiMAX Network Reference Model (NRM) 100 comprising the following logical entities: subscriber station/mobile station (SS/MS) 108, a network access provider (NAP) 102, a visited network service provider (visited NSP) 104, and a home network service provider (home NSP) 106. The NAP 102 comprises an access server network (ASN) 110 and another ASN 116. The visited NSP 104 comprises a connectivity service network (CSN) 112. The home NSP 106 comprises CSN 114.

The figure depicts normative reference points R1-R5. Each of the entities, SS/MS 108, ASN 110 and 116, and CSN 112 and 114 represent a grouping of functional entities. Each of these functions may be realized in a single physical device or may be distributed over multiple physical devices. The grouping and distribution of functions into physical devices within a functional entity (such as the ASN 110) is an implementation choice; a manufacturer may choose any physical implementation of functions, either individually or in combination, as long as the implementation meets the functional and interoperability requirements.

As shown, CSN 114 communicates with (transfers data to and receives data from) a network such as the Internet (e.g., application service provider (ASP) network or Internet 120). Similarly, the CSN 112 may also communication with the ASP network or Internet 118. Further, the CSN 112 and/or 114 communicates with one or more ASNs such as ASN 110. The ASN 110 communicates with another ASN 116. Each ASN may include an ASN-GW (ASN gateway) and a plurality of base stations (BSs) not depicted. The ASN gateway may comprise an ASN server which is in communication with CSN 112 over an interface (e.g., an R3 interface). The ASN gateway also communicates with one or more base stations (BSs) over respective interfaces (e.g., R6). Each BS serves the communication needs of mobile stations (MS) or subscriber stations (SSs) within a coverage area.

A BS communicates with one or more mobile stations over an air-interface governed by, for example, an R1 protocol or R1 interface. The R1 interface is between the SS/MS 108 and the ASN 110 as per the air-interface (PHY and MAC) specifications (IEEE P802.16d/e). R1 may include additional protocols related to the management plane.

Furthermore, BS in different ASNs may directly communicate with one another over respective interfaces (e.g., R8 interfaces). Additional functions that may be a part of the BS may include (but are not limited to) micromobility management functions, such as handoff triggering and tunnel establishment, radio resource management, QoS policy enforcement, traffic classification, DHCP (Dynamic Host Control Protocol) proxy, key management, session management, and multicast group management.

The ASN gateway may be configured to act as a layer 2 traffic aggregation point within an ASN 110. The ASN server communicates with the CSN 112 over an R3 interface. The R3 interface is the interface between the ASN 110 and the CSN 112 to support AAA, policy enforcement and mobility management capabilities. It also encompasses the bearer plane methods (e.g., tunneling) to transfer IP data between the ASN 110 and the CSN 112.

Additional functions of the ASN server may include, but are not limited to, intra-ASN location management and paging, radio resource management and admission control, caching of subscriber profiles and encryption keys, AAA client functionality, establishment and management of mobility tunnel with base stations, QoS and policy enforcement, foreign agent functionality for mobile IP, and routing to the selected CSN.

The ASN server may also communicate with another ASN 116 over an R4 interface. The R4 interface consists of a set of control and bearer plane protocols originating/terminating in various entities within the ASN 110 that coordinate MS mobility between ASNs. In Release 1, R4 is the only interoperable interface between heterogeneous or dissimilar ASNs.

In operation, the CSN 112 and/or 114 may operate as the home agent (HA) and may also provide the authentication, authorization and accounting functions (AAA server). As shown, the CSN 112 may also communicate with the SS/MS 108 via an R2 interface. The R2 interface between the SS/MS 108 and CSN 112 and/or CSN 114 is associated with authentication, services authorization, IP Host Configuration management, and mobility management. This is a logical interface thus may not reflect a direct protocol interface between SS/MS 108 and CSN 112 or CSN 114. The ASN gateway may operate as the gateway for routing data to the respective base stations among other things, and the base stations handle the communication needs of the mobile stations (e.g., SS/MS 108).

The CSN 112 may also communicate with another CSN 114 over an R5 interface. The R5 interface consists of a set of control plane and bearer plane protocols for internetworking between CSNs operated by either the home or visited NSP.

The CSN 112 may be configured to provide connectivity to the Internet, ASP, other public networks and corporate networks. The CSN 112 may be owned by the NSP and include AAA servers that support authentication for the devices, users, and specific services. The CSN 112 may also provider per user management of QoS and security. The CSN 112 may be responsible for IP address management, support for roaming between different NSPs, location management between ASNs, and mobility and roaming between ASNs. Further, CSN 112 can also provide gateways and interworking with other networks, such as PSTN (public switched telephone network), 3GPP, and 3GPP2. Those skilled in the art will appreciate that the CSN 112 and the CSN 114 may perform similar features.

FIG. 2 is a block diagram of an exemplary access service network (ASN) 202. In various embodiments, the traditional functions of an ASN server may be separated between control and data path processing. The data path processing may be performed by a routing device. When paired, the ASN router and the routing device may comprise a seamless ASN gateway.

A mobile station (MS) 200 (e.g., a digital device such as a computer, smartphone, PDA, music player, ebook reader, or media player) communicates with the ASN 202. In one example, the MS 200 communicates with the Internet over the ASN 202. The MS 200 may communicate with the BS 204 a over RF or any frequency range.

The ASN 202 comprises BS 204 a and 204 b, an ASN communication network 206, and an ASN gateway 208. The ASN gateway 208 comprises an ASN server 210 and a routing device 212. The BS 204 a may also communicate with the ASN gateway 208 over an R6 interface. The R6 interface consists of a set of control and bearer plane protocols for communication between the BS 204 a and the ASN gateway 208. The bearer plane consists of intra-ASN data path or inter-ASN tunnels between the BS and ASN gateway 208. The control plane includes protocols for IP tunnel management (establish, modify, and release) in accordance with the MS mobility events. R6 may also serve as a conduit for exchange of MAC states information between neighboring BSs.

The BS 204 a may communicate with another BS (e.g., BS 204 b) over an R8 interface. The R8 interface consists of a set of control plane message flows and, in some situations, bearer plane data flows between the base stations to ensure fast and seamless handover. The bearer plane consists of protocols that allow the data transfer between base stations involved in handover of a certain mobile station. The control plane consists of the inter-BS communication protocol defined in IEEE 802.16 and additional set of protocols that allow controlling the data transfer between the Base Stations involved in handover of a certain mobile station.

The BS 204 a is any communication device configured to communicate with the MS 200 (e.g., via RF) thereby creating a service flow. The BS 204 a may comprise a digital device. Data from the MS 200 is provided by the BS 204 a to the ASN gateway 208. The service flow may be tunneled through a generic routing encapsulation (GRE) tunnel to the routing device 212. In one example, the GRE tunnel creates a virtual point-to-point link between the BS 204 a and the routing device 212.

The ASN communication network 206 is any network that supports communication between the BS 204 a and BS 204 b with the ASN gateway 208. In some embodiments, the BS 204 a may communicate with BS 204 b via the ASN communication network 206. The ASN communication network 206 may support communication via R6 and/or R8 protocols.

The ASN server 210 performs control plane functions of the ASN gateway 208. As discussed herein, the ASN may support AAA, policy enforcement and mobility management capabilities. Additional functions of the ASN server may include, but are not limited to, intra-ASN location management and paging, radio resource management and admission control, caching of subscriber profiles and encryption keys, AAA client functionality, establishment and management of mobility tunnel with base stations, and QoS and policy enforcement.

The routing device 212, when paired with the ASN server 210, may comprise a full NWG compatible ASN gateway. The routing device 212 may comprises any digital device configured to route data and/or handle data path processing. In one example, the routing device 212 distributes data from the BS 204 a to a CSN (not depicted). The ASN gateway 208 may be compliant to WiMax Forum Profile C which can be used to control non-Telsima BSs.

The routing device 212 may receive data from a source device (e.g., the MS 200 via the BS 204 a) and provide the data to a target device (e.g., the CSN not depicted). The source device is any digital device that provides data that is received by the routing device 212. The target device is any digital device that receives the data that was provided by the source device via the routing device 212.

The routing device 212 may be configured to perform data path processing. In one example, routing device 212 maybe configured to generate (or assist in generating) a generic route encapsulation (GRE) tunnel per service flow between the routing device 212 and the BS 204 a and encapsulate downlink traffic along with IP security (IPsec). The GRE maximum packet size is 1500 bytes. As a result, the maximum packet size may be set as 1400 bytes. The routing device 212 may be configured to process the nonstandard packet size when routing data between the BS 204 a and the CSN.

Further, the routing device 212 may be configured to tunnel data received from the GRE tunnel to the CSN. For example, the routing device 212 may tunnel data using an IP tunnel (via the Mobile IP protocol) to provide data received from the GRE tunnel to provide the data to the CSN.

The routing device 212 may be configured to communicate with the ASN server 210 over an R7 interface. The R7 interface represents internal communication within the gateway and may carry control signals. In one example, communication instructions from the ASN server 210 are received from the routing device 212. Communication instructions comprise instructions to carry out data path functions. In one example, communication instructions indicate that data is to be received from a specific GRE tunnel data. Similarly, communication instructions may indicate that data is to be provided to a specific IP tunnel in order to transmit the data to the CSN (not depicted) via the R3 interface. Further, the communication instructions may indicate that data is to be received from a specific IP tunnel data and forwarded to a specific GRE tunnel.

FIG. 3 is a block diagram of an exemplary routing device 212. The routing device 212 may be configured to perform data path functions for any number of wireless networks. In some embodiments, the exemplary routing device 212 comprises a control module 302, a service module 304, and a router module 306. The control module 302 is configured to receive communication instructions from a server such as the ASN server (not depicted).

The service module 304 is configured to instruct the router module 306 based on the communication instructions from the control module 302. In one example, the service module 304 processes communication instructions from the control module 302 and provides data path instructions based on the communication instructions to the router module 306. In alternate some embodiments, some or all of the communication instructions may be provided to the router module 306.

The router module 306 may comprise a router such as Juniper MX series router or an M series router. In various embodiments, the router module 306 receives data path instructions from the service module 304. For example, the router module 306 may unpack data from a specific GRE tunnel based on the instructions and provide the data to a target device.

In some embodiments, a GRE tunnel numbering scheme is determined between a negotiation between a base station and an ASN server. The control module 302 may receive communication instructions which indicate which GRE tunnel is to be used in the data path services. The service module 304 may then provide the router instructions (i.e., data path instructions) that the router must retrieve data from the specified GRE tunnel.

In other examples, the service module 304 provides instructions to the router module 306 to unpack the data from the specific GRE tunnel. The instructions may comprise some or all of the communication instructions. The service module 304 may also provide instructions to pack the data in an IP tunnel to route the data to the CNS. Alternately, the service module 304 may provide instructions to the router module 306 to unpack data from a specific IP tunnel and transmit the data through a specific GRE tunnel. The routing device 212 may further tag service flows with VLAN information for VLAN tunnel implementation.

Those skilled in the art will appreciate that, in some embodiments, the router of the router module 306 may be replaced or updated to take advantage of new functionality of a new router (e.g., a new off-the-shelf router). In some embodiments, no further changes may be made to the routing device 212 or the ASN server. In other embodiments, the types of instructions of the communication instructions may change or expand. The routing device 212 and/or the wireless server (e.g., ASN server) may be configured to provide new communication instructions to take advantage of new functionality or services. In one example, communication instructions may indicate a different tunnel may be used (rather than a GRE or IP tunnel) or a different routing technology may be implemented.

It will be appreciated that a “module” may comprise software, hardware, firmware, and/or circuitry. In one example one or more software programs comprising instructions capable of being executable by a processor may perform one or more of the functions of the modules described herein. In another example, circuitry may perform the same or similar functions. Alternative embodiments may comprise more, less, or functionally equivalent modules and still be within the scope of present embodiments. For example, as previously discussed, the functions of the various modules may be combined or divided differently.

In various embodiments, the routing device 212 may be configured to support WSG multicast. In one example, Internet Group Management Protocol (IGMP) Join packets are received by the routing device 212 via GRE tunnels that carry unicast SF. The router module 306 (e.g., via an IGMP/PIM module not depicted) processes the IGMP request per standards. The ASN server (or ASN controller) may decide what can join which flow via communication control instructions received by the control module 302. If this is the first join request, the router module 306 may add an interface to a multicast packet duplication process. The multicast data may be tagged by many means (e.g., VLAN, GRE, or MPLS). A BS may receive VLAN data as if VLANs are GRE tunnels and put them into multicast-SF.

Those skilled in the art will appreciate that IPTV may be supported through the WSG multicast mechanism. In various embodiments, each channel is a specific multicast-SF on RF downlink which may be connected to a specific VLAN tag. A set-top box may be configured to send an IGMP message every time a channel is changed. The set-top box may be further configured to go to the multicast-sf to get the data. If someone else is already viewing the channel, the video stream may already be on that specific data stream. If no-one is subscribed, the routing device 212 may start to send the data stream using the specific VLAN tag. The BS may receive the data packets through the VLAN tag and send the data packets to the connected multicast-SF. VLAN is further discussed in U.S. Nonprovisional application Ser. No. 11/748,476, filed May 14, 2007, entitled “Dynamic VLANS in Wireless Networks” which is hereby incorporated by reference.

FIG. 4 is a block diagram of an exemplary ASN server 210. As discussed herein, unlike ASN servers in the prior art, the data plane (e.g., forwarding plane) is abstracted from the control plane. As such, the ASN server 210 is configured to generate control plane messaging (e.g., communication instructions or IP service messages) which provide instructions to a routing device 212 (see FIG. 3) to perform data plane functions. As a result of the abstraction, the ASN server 210 may not perform any data plane functions (e.g., retrieving data from a GRE tunnel or transmitting data over a GRE or IP tunnel). Rather, the ASN server 210 may control those functions performed elsewhere. The ASN server 210, as a result, does not have to be configured to unpack data or to be concerned with the actual routing of packets.

The ASN server 210 may comprise an AAA transfer module 402, a network discovery and selection module 404, an IP address allocation module 406, and the routing communication module 408. The AAA transfer module 402 performs, independent of mobility mode, the transfer of AAA control messages to WiMax subscriber's Home Network Service Provider (H-NSP) for authentication, authorization, and session accounting for subscriber sessions.

The network discovery and selection module 404 performs network discovery and selection of an appropriate network service provider (NSP) that a WiMax subscriber accesses WiMax Servic(es). The IP address allocation module 406 manages Layer-3 (L3) connectivity established with a stationary subscriber or mobile subscriber (SS/MS).

The routing communication module 408 may generate and provide communication instructions to a routing device 212. Since the data plane is abstracted from the control plane, the functions of the data plane are controlled via the routing communication module 408. In some examples, the routing communication module 408 may generate communication instructions that indicate which GRE tunnel data is to be received and which IP tunnel data is to be provided. The communication instructions may be provided to the routing device 212.

In one example, the BS tunnels data received from a mobile station (MS) within an appropriate GRE tunnel. The BS and/or MS may provide control data which is received by the ASN server 210. The routing communication module 408 may receive the control data and instruct the routing device 212 to retrieve the data from the correct GRE tunnel. For example, the control module 302 of the routing device 212 may receive the instructions from the communication module 408 of the ASN server 210. The router module 306 may then retrieve the data from the correct GRE tunnel and provide the data to the target device. In some embodiments, the router module 306 may tunnel the data within an IP tunnel to the CSN as further instructed by the routing communication module 408 of the ASN server 210. For example, the ASN server 210 may control ASN/CSN tunneling and intra-ASN mobility. The ASN server 210 may also perform paging and location management. Depending on the configuration, the ASN server may also provide radio resource management as well.

The ASN server 210 may be configured for applications such as VoIP and video broadcast. For session based applications such as VoIP, the full QoS and admission may be under the control of the provider. Further, the ASN server 210 may control the QoS levels on both RF and network layers. The ASN server 210 may be configured to control the VLAN usage either putting the VLAN tags for the customers by the BS or allow the customer to tag the traffic but police the VLAN tags.

FIG. 5 is a block diagram of an exemplary WiMax network. In various embodiments, there is no ASN gateway, rather, the data path can be distributed through a base station (e.g., BS 204 a). MS 200 sends and receives control messages directly with the ASN server 208 of the ASN 202. The MS 200 sends data to the BS 204 a (via the R1 interface). The BS 204 a, in addition to functions of the BS 204 a described herein, may perform data path processing based on communication instructions received from the ASN server 208. In some embodiments, the BS 204 a comprises a routing device such as routing device 212 (discussed herein).

The BS 204 a may receive communication instructions from the ASN server 208 and data from the MS 200. In some embodiments, the data is to be provided to the CSN gateway 504 of the CSN 502. The communication instructions may instruct the BS 204 a to tunnel the data from the MS 200 using an IP tunnel (via Mobile IP) to the CSN gateway 504. Alternately, the communication instructions may instruct the BS 204 a to tunnel the data using a VLAN tunnel and/or provide the data to another base station (e.g., BS 204 b). As instructed from the ASN server 208 via communication instructions, the routing device of the BS 204 a may route accordingly.

The CSN gateway 504 may unpack the data from the IP tunnel and provide the data to the Internet 506, ASP 508, legacy core network 510, or 2G/3G Mobile network 512.

In various embodiments, one or more base stations may be reconfigured to perform routing functions or comprise a routing device 212. Those skilled in the art will appreciate that a wireless network may comprise a combination of base stations configured to perform data path functions via the routing device and unconfigured base stations. In one example, an unconfigured base station may transmit data to an ASN gateway via GRE tunneling. A configured base station, however, may perform the data path functions of the ASN gateway. As a result, data from the base station may be tunneled directly to the CSN gateway 504.

FIG. 6 is a block diagram of an exemplary base station 204 a. In various embodiments, there may not be any ASN gateway. In accordance with various embodiments described herein, the data plane may be abstracted to one or more base stations. As a result, the each base station may comprise the routing device 212 which receives communication instructions from the ASN server (not depicted) and routes data accordingly.

The base station 204 a may comprise an RF module 602 and a routing device 212. The RF module 602 is configured to receive data from the SS/MS via RF. Although data is described as being received in RF, the data may be received by the BS 204 a in any frequency.

Those skilled in the art will appreciate that the BS 204 a may comprise any number of modules performing any number of functions. For example, a module may be configured to perform micromobility management functions, such as handoff triggering and tunnel establishment. One or more other modules may be configured to perform radio resource management, QoS policy enforcement, traffic classification, DHCP (Dynamic Host Control Protocol) proxy, key management, session management, and/or multicast group management.

Unlike some other embodiments described herein, each base station of a wireless network may require a routing device 212. In alternative embodiments, one or more base stations may be operably coupled to a routing device 212. The routing device 212 may receive communication instructions from the ASN server. Data may be provided to the routing device 212 “as is” or encapsulated to the routing device 212. The routing device 212 may perform data path functionality in compliance with communication instructions as described herein.

FIG. 7 is a block diagram of an exemplary connectivity service network (CSN) 704. Similar to embodiments discussed herein, the control plane of the CSN may be abstracted from the data plane. In various embodiments, the same routing device 112 may be coupled to an ASN server or an CSN server without reconfiguration (see FIG. 8).

In various embodiments, the ASN/CSN communication network 702 is operably connected to the CSN 704. The CSN 704 comprises a CSN server 706 and a routing device 212. In some embodiments, when the CSN server 706 and the routing device 212 are paired, they comprise a CSN gateway. The routing device 212 is communicatively coupled with the Internet 506, the ASP 508, the legacy core network 510, and the 2G/3G mobile networks 512.

The CSN server 706 may comprise a routing communication module (not depicted). The routing communication module may generate and provide communication instructions to the routing device 212. Since the data plane is abstracted from the control plane, the functions of the data plane may be controlled via the routing communication module. In some examples, the routing communication module 408 may generate communication instructions that indicate that data is to be retrieved from a specific IP tunnel. Further, the routing communication module may instruct the routing device 212 where to route the data and if the data is to be further processes (e.g., tunneled).

Further, the CSN server 706 may be configured to perform control plane functions. In some examples, the CSN server 706 may operate as the home agent (HA) and may also provide the authentication, authorization and accounting functions (e.g., as an AAA server). The CSN server 706 may also be configured to perform Host Configuration management and mobility management. The CSN server 706 may also provider per user management of QoS and security. Further, CSN server 706 can also provide gateways and interworking with other networks, such as PSTN (public switched telephone network), 3GPP, and 3GPP2.

FIG. 8 is a block diagram of an ASN server 208 and a CSN server 706 operationally coupled to a routing device 212 in some embodiments. Due to data path abstraction, as described herein, the routing device 212 may receive communication instructions from any source (e.g., the ASN server 208 or CSN server 708) without further configuration. The routing device 212 may be agnostic as to the server that sends the communication instructions or why the communication instructions were generated. In some embodiments, one or more chassis may comprise the ASN server 208, the CSN server 706 and the routing device 212.

Those skilled in the art will appreciate that the ASN server 208 and the CSN server 706 may be in communication with the same routing device 212. In one example, the routing device 212 may retrieve data from a base station and/or mobile station from a GRE tunnel and provide the data “as is” (e.g., after unpacking the data from the GRE tunnel) to the Internet 506, the ASP 508, the legacy core network 510, and/or the 2G/3G mobile networks 512.

Since the CSN server 706 may be local to the routing device 212, the routing device 212 may need not tunnel the received data in an IP tunnel. In one example, the routing device 212 may receive communication instructions from the ASN server 208 to retrieve the data from the specific GRE tunnel but then provide the data (without further tunneling or encapsulation) to a destination.

In another embodiment, a MS or BS may provide data directly to the routing device 212 via IP tunneling (e.g., the CSN side). Similar to the ASN server example, the routing device 212 may be directed to unpack the data from the IP tunnel by communication instructions from the CSN server 706 and then provide the data “as is” to the destination.

FIG. 9 is a flow diagram of an exemplary method for decentralized distribution of data in a WiMax network. In step 902, the control module 302 (see FIG. 3) of the routing device 212 receives communication instructions from an ASN server 210 (e.g., from the routing communication module 408—see FIG. 4). In some embodiments, the communication instructions comprise instructions to retrieve data (e.g., a service flow) from a specific GRE tunnel.

In step 904, the router module 306 of the routing device 212 receives data from a source device such as a BS. In step 906, the service module 304 instructs the router module 306 of the routing device to process data based on the communication instructions (e.g., via data path instructions). For example, the service module 304 identifies which GRE tunnel to unpack data from and instructs the router module 306 accordingly.

In step 908, the router module 306 routes the data (e.g., the service flow) based on the instructions from the service module 304 to the target device (e.g., a device on the Internet, an ASP server, or the like).

FIG. 10 is a block diagram of an exemplary digital device 1002. Any of the SS, MS, ASN server, CSN server, digital router, may be an instance of the digital device 1002. The digital device 1002 comprises a processor 1004, memory 1006, storage 1008, an input device 1010, a communication network interface 1012, and an output device 1014 communicatively coupled to a communication channel 1016. The processor 1004 is configured to execute executable instructions (e.g., programs). In some embodiments, the processor 1004 comprises circuitry or any processor capable of processing the executable instructions.

The memory 1006 stores data. Some examples of memory 1006 include storage devices, such as RAM, ROM, RAM cache, virtual memory, etc. In various embodiments, working data is stored within the memory 1006. The data within the memory 1006 may be cleared or ultimately transferred to the storage 1008.

The storage 1008 includes any storage configured to retrieve and store data. Some examples of the storage 1008 include flash drives, hard drives, optical drives, and/or magnetic tape. Each of the memory system 1006 and the storage system 1008 comprises a computer-readable medium, which stores instructions or programs executable by processor 1004.

The input device 1010 is any device that inputs data, e.g., mouse and keyboard. The output device 1014 outputs data, e.g., a speaker or display. Those skilled in the art will appreciate that the storage 1008, input device 1010, and output device may be optional. For example, the routing device may comprise the processor 1004 and memory 1006 as well as a device to receive and output data (e.g., the communication network interface 1012 and/or the output device 1014).

The communication network interface (com. network interface) 1012 may be coupled to a network (e.g., communication network 106) via the link 1018. The communication network interface 1012 may support communication over an Ethernet connection, a serial connection, a parallel connection, and/or an ATA connection. The communication network interface 1012 may also support wireless communication (e.g., 802.11 a/b/g/n, WiMax, LTE, WiFi). It will be apparent to those skilled in the art that the communication network interface 1012 can support many wired and wireless standards.

It will be appreciated by those skilled in the art that the hardware elements of the digital device 1002 are not limited to those depicted in FIG. 10. A digital device 1002 may comprise more or less hardware, software and/or firmware components than those depicted (e.g., drivers, operating systems, touch screens, biometric analyzers, etc.). Further, hardware elements may share functionality and still be within various embodiments described herein. In one example, encoding and/or decoding may be performed by the processor 1004 and/or a co-processor located on a GPU (i.e., Nvidia).

In various embodiments, control of data routing and the actual routing are separated. In one example, the control of the data routing may be performed by a first digital device such as a control server (e.g., an ASN server, CSN server, LTE server, or other wireless server). The actual routing may be performed by a second digital device such as a routing device (e.g., which may comprise an off-the-shelf router). The control server may generate routing instructions (e.g., communication instructions) which may be provided to the routing device (e.g., via the R7 interface). The routing device may then route network data (e.g., data from a source device to be received by a target device) based on the routing instructions. In some embodiments, the actual routing of data is performed by the routing device. Routing instructions may comprise instructions to the routing device that controls the data path. In some embodiments, the router (e.g., Juniper router) in a routing device is configured to receive and/or perform functions in response to the routing instructions.

For example, the routing instructions configure the routing device to receive data from a particular ingress interface and provide data at a particular egress interface. An interface is a logical (e.g., GRE or Mobile IP tunnel) or physical port on an access router which receives and/or transmits packets. An egress interface is an interface from which packets exit the access router. An ingress interface is an interface to which packets arrive at the access router. A GRE tunnel may be identified by a 3-tuple (e.g., source endpoint IP, a destination endpoint IP, and GRE key). A GRE tunnel may be further described in RFC 2784. The mobile IP tunnel may be further described in RFC 3344.

In various embodiments, by separating out control of the routing function to a separate digital device such as a control server from another digital device such as a routing device, the same routing device may be used by a variety of control servers. In one example, the same routing device may receive routing instructions from an ASN server and a CSN server. The routing device may route network data based on the routing instructions from both servers. Those skilled in the art will appreciate that the routing device may receive routing instructions from any number of digital devices.

The digital device that generates routing instructions may be replaced without replacing the routing device. In one example, an ASN server which generates routing instructions for a routing device may be replaced with an LTE server. The LTE server may also control the routing device by generating routing instructions. The routing device may be agnostic as to the server or network (e.g., WiMax, LTE, or other network) which provides the routing instructions.

In some embodiments, the router in the routing device is configured to receive routing instructions which control routing commands that are resident in the router. The routing commands in the router may be configured by the router manufacturer (e.g., Juniper). In some embodiments, the router may not comprise any routing command that is specific to an architecture of wireless communications (e.g., LTE or WiMAX).

In various embodiments, separating the control and the routing functions between two or more digital devices may allow for increased redundancy. Instead or replacing or adding expensive and complex servers that perform both server and routing functions (e.g., ASN server of the prior art and the CSN server of the prior art), there may be multiple routing devices each comprising a commercially available router. If one routing device fails, the control server may route data to another routing device. Since the routing device may comprise commercially available routers, replacements or redundant backups may be less expensive and less complex than replacing entire gateways in the prior art.

FIG. 11 is a block diagram of an exemplary packet forwarding module 1100. In some embodiments, the ASN server 210 comprises the packet forwarding module 1100. In other embodiments, the routing device 212 comprises the packet forwarding module 1100. Those skilled in the art will appreciate that any control server (e.g., wireless server) or digital device may comprise the packet forwarding module 1100. In some embodiments, the functions of the packet forwarding module 1100 may be shared by two or more control servers and/or digital devices.

The packet forwarding module 1100 comprises a matching module 1102, a forward module 1104, a drop module 1106, a broadcast module 1108, and a QoS module 1110. The matching module 1102 may generate one or more routing instructions to match incoming network data (e.g., from a stationary subscriber (SS) or an MS) using packet classification rules to determine what action to take for one or more packets or service flows. The packet classification rules may comprise actions to be taken for identified data received from an ingress interface. Packet classification rules may be contained within any data structure or combination of data structures.

In some embodiments, a packet classifier comprises the packet classification rules. A packet classifier may comprise an index which may comprise a priority and matching condition which are the conjunction of any number of criteria. The index may uniquely identify the classifier on the interface and may have values in the range of 0-65538. The priority (0-255 highest) may define the order that the classifier rules are tried in. In some embodiments, the forward module 1104, the drop module 1106, the broadcast module 1108, and/or the QoS module 1110 are configured to generate one or more routing instructions that are stored within the packet classifier. For example, the forward module 1104 may generate one or more instructions that identify a matching condition and an action to be performed that is stored in the packet classifier.

The forward module 1104 may generate one or more routing instructions to forward matching incoming traffic arriving on a specific ingress interface to a specific egress interface. In one example, the forward module 1104 generates one or more routing instructions to forward network data (e.g., data received from a source device) from one ingress interface to an egress interface. For example, an ASN server 210 may receive control data from an MS that network data from the MS is to be provided to a CSN gateway and/or a target device. The forward module 1104 may generate one or more routing instructions to forward network data received from one GRE tunnel and (after unencapsulating the data) tunnel the data through a specific IP to IP tunnel to the CSN gateway. The routing instructions may then be provided to the routing device (e.g., via UDP or any protocol).

In another example, the ASN server 210 may receive control data from the CSN server that indicates that network data from the CSN server is to be forwarded to a SS. The forward module 1104 may generate one or more routing instructions to receive network data from a specific IP to IP tunnel and provide the network data to a specific GRE tunnel.

In some embodiments, the forward module 1104 may also generate one or more routing instructions to perform a variety of different R7 command types. For example, the forward module 1104 maybe configured to generate one or more routing instructions to create a tunnel, destroy a tunnel, or update a tunnel. When the forward module 1104 generates one or more routing instructions to create a tunnel, the routing device may be configured to create a specified tunnel. For example, the routing device may be configured to create a tunnel between the routing device and a BS (e.g., a GRE tunnel) and/or a tunnel between the routing device and a CSN router (e.g., an IP to IP tunnel). The forward module 1104 may be configured to generate any type of tunnel.

When the forward module 1104 generates one or more routing instructions to destroy a tunnel, the routing device may be configured to destroy a specified tunnel. The forward module 1104 may generate one or more routing instructions to destroy a tunnel when the tunnel is no longer being used. For example, when an MS moves out of an area serviced by a particular ASN server, a routing device associated with the ASN server may be configured to destroy a GRE tunnel that was formerly being used between the MS and the routing device. In another example, the routing device may be configured to destroy an IP to IP tunnel between the routing device and a CSN router. The forward module 1104 may be configured to destroy any type of tunnel.

The forward module 1104 may also be configured generate one or more routing instructions to update any type of tunnel and/or update the parameters associated with an existing tunnel. In one example, the forward module 1104 may generate one or more routing instructions to change the type of tunnel from a GRE tunnel to a VLAN tunnel. Further, the forward module 1104 may generate one or more routing instructions to change tunnel parameters. For example, the forward module 1104 may generate one or more routing instructions to change GRE flags to enable sequence numbers, enable fragmentation, enable 1400 B MTU.

The forward module 1104 may also be configured to generate one or more routing instructions to create a route and delete a route. When the forward module 1104 generates one or more routing instructions to create a route, the routing device may be configured to create an IP forwarding route which may forward network data from one ingress interface to an egress interface. When the forward module 1104 generates one or more routing instructions to delete a route, the routing device may be configured to destroy an IP forwarding route. In some embodiments, the forward module 1104 may also be configured to generate one or more routing instructions to update or otherwise alter existing routes or change parameters associated with existing routes.

Those skilled in the art will appreciate that the forward module 1104 may forward data between any interfaces and/or any type of tunnel (e.g., GRE, Mobile IP, VLAN, MPLS, etc.) Similarly, those skilled in the art will appreciate that the packet forwarding module 1100 (and the components thereof) may work with any kind of tunnel or interface (e.g., destroy any type of tunnel or generate a scheduler for any type of tunnel).

The drop module 1106 may generate one or more routing instructions to drop matching incoming traffic arriving on a specific ingress interface. In one example, the drop module 1106 generates one or more routing instructions to drop network data (e.g., data received from a source device) from one ingress interface. For example, when an MS transitions from an area served by one ASN server 210 to another, for a short period of time, network data from the MS may be broadcast to both ASN servers. Once the handoff from one ASN server to the other is complete, the drop module 1106 may generate one or more routing instructions to drop any network data that may be received from the former ingress interface (e.g., GRE tunnel). The forward module 1104 may also generate one or more routing instructions to destroy the former ingress interface.

In another example, an ASN server 210 may receive an indication that an MS is no longer receiving data (e.g., the MS is shut off). The drop module 1106 may be configured to generate one or more routing instructions to drop network data from the CSN gateway (e.g., via an IP to IP tunnel) that is directed to the MS.

In another example, the drop module 1106 may be configured to generate one or more routing instructions to drop network data associated with a particular service. In one example, a user of an MS may be sending out netbios packets which may be dropped by the routing device based on routing instructions generated by the drop module 1106. In another example, a particular tunnel may carry a type of data (e.g., VoIP) that a subscriber has not purchased. As a result, VoIP data from that particular tunnel may be dropped.

The broadcast module 1108 may be configured to generate one or more routing instructions to copy outgoing traffic to two or more additional egress interfaces. In some embodiments, the ASN server 120 may receive control data to provide network data received at an ingress interface and broadcast the network data over two or more egress interfaces. In one example, when an MS travels from one area served by a first ASN server to another area served by a second ASN server, the broadcast module 1108 may generate one or more routing instructions to bi-cast any network data destined for the MS over a GRE tunnel to the MS as well as direct a copy of the network data to another ASN server and/or other routing device which will forward the network data via another GRE tunnel. By bi-casting the network data, the MS may receive the network data even if the MS is out of the area of one of the ASN servers.

The QoS module 1110 may be configured to generate one or more routing instructions to drop or buffer packets at egress interfaces according to hierarchical quality of service (QoS) policies. In some embodiments, the QoS module 1110 controls the quality of service of the routing device. As such, the QoS module 1110 may generate one or more routing instructions to buffer packets at an egress interface in order to prioritize network data and ensure quality of service. If the packets overflow the buffer or violate a QoS policy, for example, the QoS module 1110 may generate an instruction to drop one or more of the packets.

Those skilled in the art will appreciate that the QoS module 1110 may generate one or more routing instructions for any kind of QoS policy including scheduling (e.g., based on scheduling parameters such as maximum rate, guaranteed rate, scheduling priority, and/or scheduling priority type) and/or packet shaping functions. In some embodiments, the QoS module 1110 may generate instructions to create a scheduler, update a scheduler, and/or destroy a scheduler. In some embodiments, the QoS module 1110 generates one or more routing instructions for the routing device to create a scheduler with a given quality of service for a specific egress interface. For example, QoS module 1110 may generate one or more routing instructions for the routing device to create a scheduler that prioritizes VoIP data over a particular IP to IP tunnel such that VoIP services are unlikely to suffer poor performance due to packet throughput. Those skilled in the art will appreciate that the QoS module 1110 may create any kind of scheduler associated with any type and/or number of egress interfaces.

The QoS module 1110 may also generate one or more routing instructions to update a scheduler. In one example, the QoS module 1110 may determine that the network performance one a first egress interface is lower than expected (e.g., by receiving updates of the quality of the network and/or egress interface from the routing device). As a result, the QoS module 1110 may generate one or more routing instructions to update an existing scheduler for the first egress interface such that network data sent via the first egress interface does not require high performance. The QoS module 1110 may also generate one or more other routing instruction to update another existing scheduler for a higher performing egress interface to packet shape network data that requires a higher guaranteed grade of service. Those skilled in the art will appreciate that many schedulers may be created or updated depending on the quality of service required, needed, or preferred.

In some embodiments, the QoS module 1110 generates one or more instructions to destroy a scheduler. In one example, the QoS module 1110 generates an instruction to delete a scheduler or an egress interface.

The QoS module 1110 may also be configured to generate one or more routing instructions to add a tunnel to an existing scheduler or remove a tunnel from an existing scheduler. In some examples, the QoS module 1110 may generate one or more routing instructions to add a GRE tunnel to or remove a GRE tunnel from an existing scheduler. Further, in some embodiments, the QoS module 1110 may be configured to generate one or more routing instructions to cascade two or more schedulers. As a result, the routing device may be configured to cascade two or more schedulers such that the top scheduler uses a priority and guaranteed bit rate of the sub-schedulers.

FIG. 12 is a block diagram of an exemplary data path process. The exemplary data path process comprises four digital devices including an MS 1202, an ASN server 1204, an routing device 1206, and a CSN gateway. Those skilled in the art will appreciate that the exemplary data path process may be used between any source device communicating with a target device over a wireless network comprising any control server and any routing device.

In step 1210, control information (e.g., control data) is transmitted from the MS 1202 to the ASN server 1204. The control information may comprise any information related to a session associated with the ASN server 1204. In some embodiments, the control information indicates that the MS 1202 is to communicate with a target device on a network such as the Internet.

In step 1212, the ASN server 1204 processes the control information to generate one or more routing instructions. In some embodiments, the packet forwarding module 1100 may receive the control data from the MS 1202. The forward module 1104 may be configured to generate one or more routing instructions to generate a GRE tunnel between a BS and the routing device 1206, generate an IP to IP tunnel between the routing device 1206 and the CSN gateway 1208, and assign a route such that network data received from the newly created GRE tunnel is tunneled using the newly formed IP to IP tunnel to the CSN gateway 1208. In some embodiments, a QoS module 1110 may be configured to generate one or more routing instructions associated with a quality of service for the network data (e.g., a level of performance for the network data).

The routing instructions are provided to the routing device 1206 in step 1214. In some embodiments, the routing instructions are provided to the routing device 1206 via the R7 interface. The routing instructions may be provided in any protocol. The routing instructions may be used to configure the routing device 1206 (e.g., a router in the routing device 1206). In some embodiments, the routing device 1206 generates a specific GRE tunnel between the routing device 1206 and the base station associated with the MS 1202 based on the routing instructions. The routing device 1206 may also create an IP to IP tunnel from the routing device 1206 to the CSN gateway 1208.

In some embodiments, the one or more of the routing instructions configure and/or are stored in a packet classifier. In one example, one or more entries of the packet classifier may be generated based on the routing instructions. In one example, the one or more entries indicate that matching data (e.g., network data received over the newly created GRE tunnel) is to be forwarded to a specific egress interface (e.g., the newly created IP to IP tunnel). Further, the one or more entries of the packet classifier may indicate that matching data received over the IP to IP tunnel from the CSN gateway 1208 is to be forwarded and tunneled over the newly created GRE tunnel to send the matching data to the MS 1202 via the BS.

In step 1216, network data is provided from the MS 1202 to the routing device 1206. In some embodiments, the network data is sent from the MS 1202 to a target device on the Internet. The network data 1216 may be received wirelessly by the BS which tunnels the network data via the GRE tunnel to the routing device 1206.

Those skilled in the art will appreciate that the BS may comprise the routing device 1206. Alternately, the routing device 1206 may not be within the BS. In some embodiments, the routing device 1206 may perform routing based on routing instructions from the ASN server 1204, a CSN server (not depicted), or both.

In step 1218, the routing device 1206 routes network data based on the routing instructions. In some embodiments, the routing device 1206 receives the network data via the newly created GRE tunnel. The routing device 1206 may determine that data from the specific GRE tunnel is matching data (e.g., matches information within the packet classifier) and then follow any actions associated with the match. In one example, the routing device 1206 may route all data received from the specific GRE tunnel to the newly created IP to IP tunnel. The routing device 1206 may have also created a scheduler which buffers, prioritizes, and/or otherwise schedules the network data for tunneling over one or more tunnels.

In step 1220, the network data is routed to the CSN gateway 1208. In one example, the network data is tunneled to the CSN gateway 1208 via the IP to IP tunnel. The CSN gateway 1208 may then transmit the network data to the target device in step 1222 (e.g., over the Internet).

In step 1224, MS data (e.g., network data sent to the MS 1202) is received by the CSN gateway 1208. In one example, the MS data is from a digital device on the Internet that received the network data provided by the MS 1202 in step 1222. The CSN gateway 1208 may provide the MS data to the routing device 1206 in step 1226. In one example, the routing device 1206 receives the MS data via the IP to IP tunnel.

In step 1228, the routing device routes the MS data based on routing instructions. In some embodiments, the routing device 1206 matches the MS data from the IP to IP tunnel based on information contained in the packet classifier. In one example, matching data (e.g., data received via the specific IP to IP tunnel) is tunneled using the specific GRE tunnel to the BS and, ultimately, to the target device (e.g., the MS 1202).

In step 1230, the MS data 1230 is received by the MS 1202. In one example, the MS data is tunneled via the GRE tunnel to the BS which forwards the MS data to the MS 1202. In various embodiments, the BS forwards the MS data to the MS 1202 wirelessly.

Although routing is discussed in FIG. 12 as possibly using a packet classifier, those skilled in the art will appreciate that the packet classifier is optional. In one example, the routing device 1206 is configured to route all data received via one ingress interface to an egress interface without matching. The routing device 1206 may be configured to route network data and/or MS data using the routing instructions in any number of ways.

FIG. 13 is a flow diagram of an exemplary method for data path processing. In step 1305, a control server such as an ASN server 120 receives control instructions (e.g., control data) from a source device such as a SS. The control instructions may indicate that network data is to be received from the SS and routed to two or more target devices that are operably coupled to a CSN gateway via a network. In one example, the control instructions are received by a packet forwarding module 1100 (see FIG. 11) within the ASN server. Those skilled in the art will appreciate that the control server may comprise any kind of server, including a CSN server, LTE server, WiMAX server, and/or any wireless server.

In step 1310, the packet forwarding module 1100 generates one or more routing instructions regarding routing network data based on the control instructions. The matching module 1102 may also generate one or more routing instructions which may configure and/or control the routing device to match network data (e.g., network data received via a specific GRE tunnel) and perform various actions including actions associated with routing instructions generated by one or more other modules of the packet forwarding module 1100.

In on example, the forward module 1104 may generate one or more routing instruction to create a GRE tunnel between the routing device and a BS in communication with the SS. The forward module 1104, based on the control instructions, may also generate one or more routing instructions to create a tunnel to a CSN router, CSN gateway, or other digital device(s). The broadcast module 108, based on the control instructions, may generate one or more routing instructions to broadcast network data received via the GRE tunnel to two or more digital devices such as target devices (e.g., by tunneling the network data through two or more different tunnels such as VLAN tunnels). The QoS module 1110, based on the control instructions, may generate one or more routing instructions to create one or more schedulers to one or more egress interfaces (e.g., the egress interfaces identified in the routing instruction(s)) generated by the forward module 1104.

In step 1315, the packet forwarding module 1100 may provide the routing instructions to the routing device. In step 1320, the routing device 212 (see FIG. 3) is configured or controlled based on the routing instructions. In one example, a control module 302 of the routing device 212 may receive the routing instructions and the service module 304 may configure the router module 306 based on the routing instructions. In one example, one or more of the routing instructions are associated with a packet classifier. The service module 304 and/or the router module 306 may comprise the packet classifier. For example, the router module 306 may also create, destroy, or update tunnels and/or routes based on the routing instructions.

In step 1325, the routing device 212 receives network data from a source device. In one example, the SS wirelessly transmits network data to the BS that provides the network data to the routing device 212 via the GRE tunnel that was generated by the router module 306.

In step 1330, the configured routing device 212 routes network data from the source device to a target device. In one example, the router module 306 matches network data received over the GRE tunnel with actions in the packet classifier to route and broadcast the network data to two or more egress interfaces. Further, the router module 306 may be configured to schedule the network data at the two or more egress interfaces. Each egress interface maybe scheduled differently depending on the routing instruction received from the packet forwarding module 1110.

The above-described functions and components can comprise instructions that are stored on a storage medium such as a computer readable medium. Some examples of instructions include software, program code, and firmware. The instructions can be retrieved and executed by a processor in many ways.

The present invention is described above with reference to exemplary embodiments. It will be apparent to those skilled in the art that various modifications may be made and other embodiments can be used without departing from the broader scope of the present invention. Therefore, these and other variations upon the exemplary embodiments are intended to be covered by the present invention. 

1. A method comprising: receiving control data at a control server from a source device; generating routing instructions at the control server regarding routing network data based on the control data; providing the routing instructions to a routing device; configuring the routing device based on the routing instructions; receiving network data from the source device; and routing the network data from the source device to a target device using the configured routing device. 